#ifndef STRUCTS_H
#define STRUCTS_H

#include <cstdio>
#include <algorithm>

struct aresta
{
    //aresta(): ini(0),fim(0){}
    aresta(int i, int f): ini(i),fim(f){}
    int ini;
    int fim;
};

struct ponto_angulo
{
    //ponto_angulo(): ponto(0),angulo(0.0){}
    ponto_angulo(int p, double a): ponto(p),angulo(a){}
    int ponto;
    double angulo;
};

struct triangulo
{
    //triangulo(): a(0),b(0),c(0),soma_godel(-1){}
    triangulo(int va, int vb, int vc): a(va),b(vb),c(vc)
    {
        int vertices[] = {a,b,c};
        size_t menor, n=3;
        // Ordernar os índices:
        for (size_t i=0 ; i<n ; i++)
        {
            // Achar o menor elemento:
            menor = i;
            for (size_t j=i+1 ; j<n ; j++) if (vertices[j] < vertices[menor]) menor = j;
            // Trocar o "menor" com a posição "i" caso ele seja menor ainda:
            if (menor != i) std::swap(vertices[menor],vertices[i]);
        }
        a = vertices[0];
        b = vertices[1];
        c = vertices[2];
    }
    int a;
    int b;
    int c;
};

#endif // STRUCTS_H
